pub fn dp_rec_mc(amount: u32) -> u32 {
    let denominations = [100, 50, 30, 20, 10, 5, 2, 1];
    let mut coins: u32 = 0;
    let mut remaining = amount;

    for &denomination in denominations.iter() {
        let count = remaining / denomination;
        remaining %= denomination;
        coins += count;

        if remaining == 0 {
            break;
        }
    }

    coins
}
